Skip to content

chore: purge committed backend/venv from version control (coverage + static-analysis hygiene)#78

Open
Prekzursil wants to merge 1 commit into
mainfrom
chore/purge-committed-venv
Open

chore: purge committed backend/venv from version control (coverage + static-analysis hygiene)#78
Prekzursil wants to merge 1 commit into
mainfrom
chore/purge-committed-venv

Conversation

@Prekzursil

@Prekzursil Prekzursil commented Jun 5, 2026

Copy link
Copy Markdown
Owner

Purge committed Python virtualenv (backend/venv/) from version control

Part of the quality-zero-platform drive-to-zero campaign (fleet-quality hygiene).

What this does

Removes the accidentally-committed Python virtualenv at backend/venv/8,724 tracked files — from version control, and hardens .gitignore.

Why

  1. Coverage denominator pollution. The committed site-packages/ is third-party library code that gets counted as project source, deflating/distorting coverage metrics.
  2. Static-analysis noise. It generates ~33 spurious CodeQL / static-analysis alerts on vendored third-party code that isn't part of this project.

Removing the venv from tracking is a high-impact, low-risk cleanup: it touches no first-party application code.

Why it was still tracked

.gitignore already had a bare venv/ rule, but the venv files were committed before that rule existed — .gitignore only affects untracked files, so Git kept tracking them. This PR runs an explicit git rm -r backend/venv and hardens the ignore rules:

venv/
.venv/
backend/venv/
**/site-packages/

Scope / safety

  • Only backend/venv/ is removed (it was the single tracked virtualenv in the repo — confirmed via pyvenv.cfg / site-packages/ search). No first-party code, tests, or config changed.
  • No genuine secret or project config file was among the removed files. The only venv-specific config is backend/venv/pyvenv.cfg (local machine paths + Python version — benign).

Out of scope: leaked Azure Entra ID token

This PR does NOT address the separately-flagged leaked Azure Entra ID token. That secret does not live inside the venv, so purging the venv neither removes nor rotates it. Operator rotation of that token is still required and is being handled separately.

Note: this removes the venv from HEAD going forward. The files remain in Git history; a history rewrite (if desired) is a separate operation.


Summary by cubic

Removed the accidentally committed Python virtualenv at backend/venv/ and hardened .gitignore to prevent tracking of virtualenvs and site-packages. This fixes coverage pollution and removes noisy static-analysis alerts from third-party code.

  • Refactors
    • Deleted backend/venv/ from version control.
    • Added ignores: venv/, .venv/, backend/venv/, **/site-packages/.

Written for commit 88d6eb0. Summary will update on new commits.

Review in cubic

…static-analysis hygiene)

Removes the accidentally-committed Python virtualenv at backend/venv/
(8,724 tracked files) from version control.

Why:
- It poisons the coverage denominator (third-party site-packages code is
  counted as project source).
- It generates ~33 spurious CodeQL / static-analysis alerts on vendored
  third-party code that is not part of this project.

.gitignore already had a bare `venv/` rule, but these files were committed
before that rule existed, so Git kept tracking them. This change runs an
explicit `git rm -r` and hardens .gitignore (venv/, .venv/, backend/venv/,
**/site-packages/).

Note: this does NOT address the separately-flagged leaked Azure Entra ID
token (operator rotation required); that secret is not located inside the
venv, so purging the venv does not remove or rotate it.
@devloai

devloai Bot commented Jun 5, 2026

Copy link
Copy Markdown

Unable to trigger custom agent "Code Reviewer". You have run out of credits 😔
Please upgrade your plan or buy additional credits from the subscription page.

@codeant-ai

codeant-ai Bot commented Jun 5, 2026

Copy link
Copy Markdown

Skipping CodeAnt AI review — this PR changes more than 100 files, which usually means a migration, codemod, or vendored drop. Line-level review on diffs this large produces duplicate findings on the same rewrite pattern and drowns out anything that actually matters.

If you still want a review, comment @codeant-ai : review. For better signal, consider splitting the PR into smaller chunks.

@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 162 files, which is 12 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 025ae8d6-3631-442d-8a99-38a88ef87775

📥 Commits

Reviewing files that changed from the base of the PR and between a12be04 and 88d6eb0.

⛔ Files ignored due to path filters (138)
  • backend/venv/Lib/site-packages/__pycache__/py.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/__pycache__/six.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/_argcomplete.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/_version.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/cacheprovider.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/capture.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/compat.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/debugging.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/deprecated.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/doctest.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/faulthandler.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/fixtures.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/freeze_support.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/helpconfig.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/hookspec.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/junitxml.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/legacypath.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/logging.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/main.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/monkeypatch.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/nodes.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/outcomes.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/pastebin.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/pathlib.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/pytester.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/pytester_assertions.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/python.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/python_api.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/python_path.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/recwarn.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/reports.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/runner.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/scope.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/setuponly.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/setupplan.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/skipping.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/stash.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/stepwise.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/terminal.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/threadexception.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/timing.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/tmpdir.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/unittest.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/unraisableexception.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/warning_types.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/__pycache__/warnings.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_code/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_code/__pycache__/code.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_code/__pycache__/source.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_io/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_io/__pycache__/pprint.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_io/__pycache__/saferepr.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_io/__pycache__/terminalwriter.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_io/__pycache__/wcwidth.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_py/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_py/__pycache__/error.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/_py/__pycache__/path.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/assertion/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/assertion/__pycache__/rewrite.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/assertion/__pycache__/truncate.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/assertion/__pycache__/util.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/config/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/config/__pycache__/argparsing.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/config/__pycache__/compat.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/config/__pycache__/exceptions.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/config/__pycache__/findpaths.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/mark/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/mark/__pycache__/expression.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/_pytest/mark/__pycache__/structures.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/abstract_channel.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/basic_message.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/channel.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/connection.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/exceptions.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/method_framing.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/platform.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/protocol.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/sasl.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/serialization.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/spec.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/transport.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/amqp/__pycache__/utils.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/compatibility.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/current_thread_executor.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/local.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/server.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/sync.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/testing.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/timeout.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/typing.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/asgiref/__pycache__/wsgi.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/_ext.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/_win.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/common.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/compat.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/connection.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/context.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/einfo.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/exceptions.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/forkserver.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/heap.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/managers.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/pool.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/popen_fork.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/popen_forkserver.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/popen_spawn_posix.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/popen_spawn_win32.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/process.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/queues.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/reduction.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/resource_sharer.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/semaphore_tracker.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/sharedctypes.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/spawn.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/synchronize.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/__pycache__/util.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/dummy/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/billiard/dummy/__pycache__/connection.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/__main__.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/_state.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/beat.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/bootsteps.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/canvas.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/exceptions.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/local.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/platforms.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/result.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/schedules.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/signals.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/__pycache__/states.cpython-311.pyc is excluded by !**/*.pyc
  • backend/venv/Lib/site-packages/celery/app/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
📒 Files selected for processing (162)
  • .gitignore
  • backend/venv/Lib/site-packages/PyJWT-2.9.0.dist-info/AUTHORS.rst
  • backend/venv/Lib/site-packages/PyJWT-2.9.0.dist-info/INSTALLER
  • backend/venv/Lib/site-packages/PyJWT-2.9.0.dist-info/LICENSE
  • backend/venv/Lib/site-packages/PyJWT-2.9.0.dist-info/METADATA
  • backend/venv/Lib/site-packages/PyJWT-2.9.0.dist-info/RECORD
  • backend/venv/Lib/site-packages/PyJWT-2.9.0.dist-info/WHEEL
  • backend/venv/Lib/site-packages/PyJWT-2.9.0.dist-info/top_level.txt
  • backend/venv/Lib/site-packages/_distutils_hack/__init__.py
  • backend/venv/Lib/site-packages/_distutils_hack/override.py
  • backend/venv/Lib/site-packages/_pytest/__init__.py
  • backend/venv/Lib/site-packages/_pytest/_argcomplete.py
  • backend/venv/Lib/site-packages/_pytest/_code/__init__.py
  • backend/venv/Lib/site-packages/_pytest/_code/code.py
  • backend/venv/Lib/site-packages/_pytest/_code/source.py
  • backend/venv/Lib/site-packages/_pytest/_io/__init__.py
  • backend/venv/Lib/site-packages/_pytest/_io/pprint.py
  • backend/venv/Lib/site-packages/_pytest/_io/saferepr.py
  • backend/venv/Lib/site-packages/_pytest/_io/terminalwriter.py
  • backend/venv/Lib/site-packages/_pytest/_io/wcwidth.py
  • backend/venv/Lib/site-packages/_pytest/_py/__init__.py
  • backend/venv/Lib/site-packages/_pytest/_py/error.py
  • backend/venv/Lib/site-packages/_pytest/_py/path.py
  • backend/venv/Lib/site-packages/_pytest/_version.py
  • backend/venv/Lib/site-packages/_pytest/assertion/__init__.py
  • backend/venv/Lib/site-packages/_pytest/assertion/rewrite.py
  • backend/venv/Lib/site-packages/_pytest/assertion/truncate.py
  • backend/venv/Lib/site-packages/_pytest/assertion/util.py
  • backend/venv/Lib/site-packages/_pytest/cacheprovider.py
  • backend/venv/Lib/site-packages/_pytest/capture.py
  • backend/venv/Lib/site-packages/_pytest/compat.py
  • backend/venv/Lib/site-packages/_pytest/config/__init__.py
  • backend/venv/Lib/site-packages/_pytest/config/argparsing.py
  • backend/venv/Lib/site-packages/_pytest/config/compat.py
  • backend/venv/Lib/site-packages/_pytest/config/exceptions.py
  • backend/venv/Lib/site-packages/_pytest/config/findpaths.py
  • backend/venv/Lib/site-packages/_pytest/debugging.py
  • backend/venv/Lib/site-packages/_pytest/deprecated.py
  • backend/venv/Lib/site-packages/_pytest/doctest.py
  • backend/venv/Lib/site-packages/_pytest/faulthandler.py
  • backend/venv/Lib/site-packages/_pytest/fixtures.py
  • backend/venv/Lib/site-packages/_pytest/freeze_support.py
  • backend/venv/Lib/site-packages/_pytest/helpconfig.py
  • backend/venv/Lib/site-packages/_pytest/hookspec.py
  • backend/venv/Lib/site-packages/_pytest/junitxml.py
  • backend/venv/Lib/site-packages/_pytest/legacypath.py
  • backend/venv/Lib/site-packages/_pytest/logging.py
  • backend/venv/Lib/site-packages/_pytest/main.py
  • backend/venv/Lib/site-packages/_pytest/mark/__init__.py
  • backend/venv/Lib/site-packages/_pytest/mark/expression.py
  • backend/venv/Lib/site-packages/_pytest/mark/structures.py
  • backend/venv/Lib/site-packages/_pytest/monkeypatch.py
  • backend/venv/Lib/site-packages/_pytest/nodes.py
  • backend/venv/Lib/site-packages/_pytest/outcomes.py
  • backend/venv/Lib/site-packages/_pytest/pastebin.py
  • backend/venv/Lib/site-packages/_pytest/pathlib.py
  • backend/venv/Lib/site-packages/_pytest/py.typed
  • backend/venv/Lib/site-packages/_pytest/pytester.py
  • backend/venv/Lib/site-packages/_pytest/pytester_assertions.py
  • backend/venv/Lib/site-packages/_pytest/python.py
  • backend/venv/Lib/site-packages/_pytest/python_api.py
  • backend/venv/Lib/site-packages/_pytest/python_path.py
  • backend/venv/Lib/site-packages/_pytest/recwarn.py
  • backend/venv/Lib/site-packages/_pytest/reports.py
  • backend/venv/Lib/site-packages/_pytest/runner.py
  • backend/venv/Lib/site-packages/_pytest/scope.py
  • backend/venv/Lib/site-packages/_pytest/setuponly.py
  • backend/venv/Lib/site-packages/_pytest/setupplan.py
  • backend/venv/Lib/site-packages/_pytest/skipping.py
  • backend/venv/Lib/site-packages/_pytest/stash.py
  • backend/venv/Lib/site-packages/_pytest/stepwise.py
  • backend/venv/Lib/site-packages/_pytest/terminal.py
  • backend/venv/Lib/site-packages/_pytest/threadexception.py
  • backend/venv/Lib/site-packages/_pytest/timing.py
  • backend/venv/Lib/site-packages/_pytest/tmpdir.py
  • backend/venv/Lib/site-packages/_pytest/unittest.py
  • backend/venv/Lib/site-packages/_pytest/unraisableexception.py
  • backend/venv/Lib/site-packages/_pytest/warning_types.py
  • backend/venv/Lib/site-packages/_pytest/warnings.py
  • backend/venv/Lib/site-packages/amqp-5.3.1.dist-info/INSTALLER
  • backend/venv/Lib/site-packages/amqp-5.3.1.dist-info/LICENSE
  • backend/venv/Lib/site-packages/amqp-5.3.1.dist-info/METADATA
  • backend/venv/Lib/site-packages/amqp-5.3.1.dist-info/RECORD
  • backend/venv/Lib/site-packages/amqp-5.3.1.dist-info/WHEEL
  • backend/venv/Lib/site-packages/amqp-5.3.1.dist-info/top_level.txt
  • backend/venv/Lib/site-packages/amqp/__init__.py
  • backend/venv/Lib/site-packages/amqp/abstract_channel.py
  • backend/venv/Lib/site-packages/amqp/basic_message.py
  • backend/venv/Lib/site-packages/amqp/channel.py
  • backend/venv/Lib/site-packages/amqp/connection.py
  • backend/venv/Lib/site-packages/amqp/exceptions.py
  • backend/venv/Lib/site-packages/amqp/method_framing.py
  • backend/venv/Lib/site-packages/amqp/platform.py
  • backend/venv/Lib/site-packages/amqp/protocol.py
  • backend/venv/Lib/site-packages/amqp/sasl.py
  • backend/venv/Lib/site-packages/amqp/serialization.py
  • backend/venv/Lib/site-packages/amqp/spec.py
  • backend/venv/Lib/site-packages/amqp/transport.py
  • backend/venv/Lib/site-packages/amqp/utils.py
  • backend/venv/Lib/site-packages/asgiref-3.8.1.dist-info/INSTALLER
  • backend/venv/Lib/site-packages/asgiref-3.8.1.dist-info/LICENSE
  • backend/venv/Lib/site-packages/asgiref-3.8.1.dist-info/METADATA
  • backend/venv/Lib/site-packages/asgiref-3.8.1.dist-info/RECORD
  • backend/venv/Lib/site-packages/asgiref-3.8.1.dist-info/WHEEL
  • backend/venv/Lib/site-packages/asgiref-3.8.1.dist-info/top_level.txt
  • backend/venv/Lib/site-packages/asgiref/__init__.py
  • backend/venv/Lib/site-packages/asgiref/compatibility.py
  • backend/venv/Lib/site-packages/asgiref/current_thread_executor.py
  • backend/venv/Lib/site-packages/asgiref/local.py
  • backend/venv/Lib/site-packages/asgiref/py.typed
  • backend/venv/Lib/site-packages/asgiref/server.py
  • backend/venv/Lib/site-packages/asgiref/sync.py
  • backend/venv/Lib/site-packages/asgiref/testing.py
  • backend/venv/Lib/site-packages/asgiref/timeout.py
  • backend/venv/Lib/site-packages/asgiref/typing.py
  • backend/venv/Lib/site-packages/asgiref/wsgi.py
  • backend/venv/Lib/site-packages/billiard-4.2.1.dist-info/INSTALLER
  • backend/venv/Lib/site-packages/billiard-4.2.1.dist-info/LICENSE.txt
  • backend/venv/Lib/site-packages/billiard-4.2.1.dist-info/METADATA
  • backend/venv/Lib/site-packages/billiard-4.2.1.dist-info/RECORD
  • backend/venv/Lib/site-packages/billiard-4.2.1.dist-info/WHEEL
  • backend/venv/Lib/site-packages/billiard-4.2.1.dist-info/top_level.txt
  • backend/venv/Lib/site-packages/billiard/__init__.py
  • backend/venv/Lib/site-packages/billiard/_ext.py
  • backend/venv/Lib/site-packages/billiard/_win.py
  • backend/venv/Lib/site-packages/billiard/common.py
  • backend/venv/Lib/site-packages/billiard/compat.py
  • backend/venv/Lib/site-packages/billiard/connection.py
  • backend/venv/Lib/site-packages/billiard/context.py
  • backend/venv/Lib/site-packages/billiard/dummy/__init__.py
  • backend/venv/Lib/site-packages/billiard/dummy/connection.py
  • backend/venv/Lib/site-packages/billiard/einfo.py
  • backend/venv/Lib/site-packages/billiard/exceptions.py
  • backend/venv/Lib/site-packages/billiard/forkserver.py
  • backend/venv/Lib/site-packages/billiard/heap.py
  • backend/venv/Lib/site-packages/billiard/managers.py
  • backend/venv/Lib/site-packages/billiard/pool.py
  • backend/venv/Lib/site-packages/billiard/popen_fork.py
  • backend/venv/Lib/site-packages/billiard/popen_forkserver.py
  • backend/venv/Lib/site-packages/billiard/popen_spawn_posix.py
  • backend/venv/Lib/site-packages/billiard/popen_spawn_win32.py
  • backend/venv/Lib/site-packages/billiard/process.py
  • backend/venv/Lib/site-packages/billiard/queues.py
  • backend/venv/Lib/site-packages/billiard/reduction.py
  • backend/venv/Lib/site-packages/billiard/resource_sharer.py
  • backend/venv/Lib/site-packages/billiard/semaphore_tracker.py
  • backend/venv/Lib/site-packages/billiard/sharedctypes.py
  • backend/venv/Lib/site-packages/billiard/spawn.py
  • backend/venv/Lib/site-packages/billiard/synchronize.py
  • backend/venv/Lib/site-packages/billiard/util.py
  • backend/venv/Lib/site-packages/celery-5.5.3.dist-info/INSTALLER
  • backend/venv/Lib/site-packages/celery-5.5.3.dist-info/METADATA
  • backend/venv/Lib/site-packages/celery-5.5.3.dist-info/RECORD
  • backend/venv/Lib/site-packages/celery-5.5.3.dist-info/REQUESTED
  • backend/venv/Lib/site-packages/celery-5.5.3.dist-info/WHEEL
  • backend/venv/Lib/site-packages/celery-5.5.3.dist-info/entry_points.txt
  • backend/venv/Lib/site-packages/celery-5.5.3.dist-info/licenses/LICENSE
  • backend/venv/Lib/site-packages/celery-5.5.3.dist-info/top_level.txt
  • backend/venv/Lib/site-packages/celery/__init__.py
  • backend/venv/Lib/site-packages/celery/__main__.py
  • backend/venv/Lib/site-packages/celery/_state.py
  • backend/venv/Lib/site-packages/celery/app/__init__.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/purge-committed-venv

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sonarqubecloud

sonarqubecloud Bot commented Jun 5, 2026

Copy link
Copy Markdown

@qodo-code-review

Copy link
Copy Markdown

Review Summary by Qodo

Remove accidentally-committed Python virtualenv from version control and harden .gitignore

Grey Divider

Walkthroughs

Description
• Removes 8,724 tracked files from the accidentally-committed Python virtualenv at backend/venv/
  from version control
• Hardens .gitignore with explicit rules for venv/, .venv/, backend/venv/, and
  **/site-packages/ to prevent future commits
• Eliminates coverage metric pollution caused by third-party library code in site-packages/ being
  counted as project source
• Eliminates ~33 spurious static-analysis (CodeQL) alerts generated by vendored third-party code
• No first-party application code, tests, or configuration files are affected
• No genuine secrets or project config files were removed (only benign venv-specific metadata like
  pyvenv.cfg)
• Does not address separately-flagged Azure Entra ID token leak (requires separate operator
  rotation)
Diagram
flowchart LR
  A["Committed backend/venv<br/>8,724 files"] -- "git rm -r" --> B["Removed from tracking"]
  B -- "Hardens .gitignore" --> C["Prevents future commits"]
  C --> D["Cleaner coverage metrics"]
  C --> E["Reduced static-analysis noise"]

Loading

Grey Divider

Qodo Logo

@qodo-code-review

qodo-code-review Bot commented Jun 5, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Qodo Logo

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed

Note: This PR contains a large number of files. cubic only reviews up to 100 files per PR, so some files may not have been reviewed. cubic prioritizes the most important files to review.
On a pro plan you can use ultrareview for larger PRs.

Re-trigger cubic

@sentry

sentry Bot commented Jun 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@qodo-code-review

Copy link
Copy Markdown

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: shared-scanner-matrix / Sonar Zero

Failed stage: Run selected lane [❌]

Failed test name: ""

Failure summary:

The action failed in the “Sonar Zero Gate” step because the Sonar API request returned an HTTP 404,
causing the quality check script to exit with an error.
- The log shows: Sonar API request failed:
HTTP Error 404 (line 534), leading to subprocess.CalledProcessError (lines 535-540).
- The failing
command was running /home/runner/work/WebCoder/WebCoder/platform/scripts/quality/check_sonar_zero.py
with --project-key Prekzursil_WebCoder (line 540). The 404 suggests the requested Sonar endpoint or
the specified project key was not found/accessible, so the script returned exit status 1, failing
the job (lines 540-541).

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

519:  CODEX_AUTH_JSON: 
520:  SENTRY_AUTH_TOKEN: ***
521:  DEEPSCAN_API_TOKEN: ***
522:  SENTRY_ORG: prekzursil
523:  SENTRY_PROJECT: WebCoder
524:  DEEPSCAN_POLICY_MODE: github_check_context
525:  DEEPSCAN_OPEN_ISSUES_URL: 
526:  ##[endgroup]
527:  # Sonar Zero Gate
528:  - Status: `fail`
529:  - Project: `Prekzursil_WebCoder`
530:  - Open issues: `0`
531:  - Quality gate: `UNKNOWN`
532:  - Timestamp (UTC): `2026-06-05T05:16:43.681116+00:00`
533:  ## Findings
534:  - Sonar API request failed: HTTP Error 404: 
535:  Traceback (most recent call last):
536:  File "<stdin>", line 96, in <module>
537:  File "<stdin>", line 20, in run
538:  File "/opt/hostedtoolcache/Python/3.12.13/x64/lib/python3.12/subprocess.py", line 571, in run
539:  raise CalledProcessError(retcode, process.args,
540:  subprocess.CalledProcessError: Command '['/opt/hostedtoolcache/Python/3.12.13/x64/bin/python', '/home/runner/work/WebCoder/WebCoder/platform/scripts/quality/check_sonar_zero.py', '--project-key', 'Prekzursil_WebCoder', '--out-json', 'sonar-zero/sonar.json', '--out-md', 'sonar-zero/sonar.md', '--policy-mode', 'zero', '--sha', '88d6eb054e3022d2bab669ae34ed1bb8ad72250b', '--branch', 'chore/purge-committed-venv']' returned non-zero exit status 1.
541:  ##[error]Process completed with exit code 1.
542:  ##[group]Run actions/upload-artifact@v4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant